A tutti è noto il fenomeno della migrazione: le persone sono spinte per vari motivi a spostarsi tra Paesi, come ad esempio per lavoro, per amore o per necessità a causa di contesti di guerra, problemi climatici o politici. Il fenomeno di carattere sociale è studiato da numerosi sociologi e politologi; ne risulta che è molto controverso e sostenuto e/o criticato (a seconda dei punti di vista); in Italia è un argomento che suscita non poche polemiche, soprattutto a livello politico.
OBBIETTIVO: la seguente analisi ha come obbiettivo quello di evidenziare la presenza di fenomeni migratori verso il nostro Paese mettendone in luce i numeri, i motivi e le conseguenze che possono derivarne.
I DATI: la fonte dei dati è l'ISTAT, che si occupa, tramite una sezione dedicata (Immigrati.Stat), di raccogliere numeri a proposito del fenomeno nelle sue varie sfaccettature.
Il progetto si articola in due fasi:
Per prima cosa importo le librerie
import numpy as np
import pandas as pd
import seaborn as sns; sns.set()
import matplotlib
ANALISI¶
In questa parte andremo ad analizzare i dati forniti dall'ISTAT mettendo in evidenza i punti salienti con dei brevi commenti (poi approfonditi nel report) e dei grafici. Partiremo dal numero delle persone straniere residenti in Italia, i motivi per i quali si trovano nel nostro Paese, i tassi di occupazione e disoccupazione, possibili aspetti positivi e negativi e le loro condizioni sociali.
QUANTI SONO? SONO IN AUMENTO?
Per prima cosa importo il dataframe della popolazione straniera residente in italia suddivisa per anni (2017, 2018, 2019), sesso e regione. Si utilizzano gli ultimi tre anni resi disponibili dall'ISTAT per semplicità e come punto di riferimento.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
residenti_totale = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/stranieri_residenti.csv", usecols=['Territorio', 'Tipo di indicatore demografico', 'Sesso', 'Seleziona periodo', 'Value'])
residenti_totale.isnull().any() #non sono presenti valori nulli
Visualizzo la tabella dei residenti rinominando le colonne per semplicità.
residenti_totale = residenti_totale.rename(columns= {'Tipo di indicatore demografico' : 'index', 'Seleziona periodo' : 'periodo', 'Value':'valore'})
residenti_totale.head()
Successivamente seleziono le righe contentente il numero totale di popolazione residente al 31 dicembre e creo un dataframe per ogni anno.
residenti = residenti_totale.loc[(residenti_totale['index']== 'popolazione straniera al 31 dicembre')]
residenti = residenti.loc[(residenti['Territorio'] == 'Italia')]
residenti = residenti.loc[(residenti['Sesso']== 'totale')]
residenti
residenti_2017 = residenti.iloc[0:1]
residenti_2017.head()
residenti_2018 = residenti.iloc[1:-1]
residenti_2018.head()
residenti_2019 = residenti.iloc[2:]
residenti_2019.head()
Quanto sono aumentati?
(5306548-5144440)/5144440
L'ISTAT fornisce annualmente i dati sui permessi di soggiorno; viene utilizzato il dataframe del 2018 come esempio più recente. Il permesso di soggiorno è utile in quanto mi consente di estrapolare i motivi per i quali i richiedenti si trovano in Italia e da dove provengono.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
permesso_sogg = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/permesso_soggiorno.csv", usecols=['Sesso','Principali Paesi di cittadinanza', 'Motivo del permesso', 'Seleziona periodo', 'Value'])
permesso_sogg.isnull().any() #non sono presenti valori nulli
Visualizzo il dataframe rinominando per comodità le variabili.
permesso_sogg = permesso_sogg.rename(columns= {'Principali Paesi di cittadinanza' : 'paese_cittadinanza', 'Motivo del permesso' : 'motivo_permesso', 'Value' : 'valore'})
permesso_sogg.head()
Con la funzione pivot_table() creo una tabella coerente e ordinata nel quale visualizzo i valori per tipologia di permesso e suddivisi per provenienza geografica (seleziono solo i Paesi con un numero significativo).
permesso_sogg1 = permesso_sogg.loc[(permesso_sogg['paese_cittadinanza']=='Albania')| (permesso_sogg['paese_cittadinanza']=='Bangladesh')| (permesso_sogg['paese_cittadinanza']=='Cina')| (permesso_sogg['paese_cittadinanza']=='India')|(permesso_sogg['paese_cittadinanza']=='Marocco')| (permesso_sogg['paese_cittadinanza']=='Nigeria')| (permesso_sogg['paese_cittadinanza']=='Pakistan')]
permesso_sogg2 = permesso_sogg1.pivot_table(values='valore', index='paese_cittadinanza', columns='motivo_permesso')
permesso_sogg2
Visualizzeremo ora una choropleth map, ossia una mappa interattiva che colora le regioni/stati a seconda di ciò che viene richiesto. La scelta del grafico è basata sulla semplicità dell'interpretazione del risultato. Iniziamo con l'importare i pacchetti necessari e i dataset necessari.
Il procedimento per installare il pacchetto principale, geopandas, pacchetto necessario per le choropleth maps, è complesso. Ecco i passaggi da effettuare sul prompt comandi del proprio PC.
import geopandas as gpd #importo i pacchetti necessari
import matplotlib.pyplot as plt
import folium
import branca
import os
import json
import requests
from folium.features import GeoJson, GeoJsonTooltip, GeoJsonPopup, LatLngPopup #importo altri importanti pacchetti
stati_permesso = pd.read_csv(r"C:/Users/Utente/Desktop/organizzazioni e società/stati_permesso.csv", sep=";") #importo il mio dataset
world_countries = gpd.read_file( #aprire il file territoriale
'countries.geojson',
driver='GeoJSON')
Per visualizzare la mappa effettuo un merge (ossia un'unione) tra i due dataset, quello territoriale e quello contenente le informazioni necessarie.
countries_gpd= pd.merge(world_countries, stati_permesso, right_on="PAESE", left_on="ADMIN").drop('PAESE', axis=1)
Ora impostiamo nello specifico la mappa, con i popup, tooltip.
geoprova = folium.Map(location=[40, 12], tiles= "OpenStreetMap", zoom_start=2) #imposto la mappa
popup = GeoJsonPopup( #Definisco i popup con i campi che ho nel geojson
fields=["ADMIN", "VALORE"],
aliases=["PAESE", "N° PERMESSI:"],
localize=True,
labels=True,
)
tooltip = GeoJsonTooltip( #Definisco i tooltip con i campi che ho nel geojson
fields=["ADMIN", "VALORE"],
aliases=["PAESE", " N° PERMESSI:"],
localize=True,
sticky=False,
labels=True,
style="""
background-color: #F0EFEF;
border: 2px solid black;
border-radius: 3px;
box-shadow: 3px;
""",
max_width=800,)
Utilizzo la funzione folium per mettere in relazione i Paesi di origine ed il numero di persone provenineti da quei Paesi.
g = folium.Choropleth(
geo_data=countries_gpd.to_json(),
name='choropleth',
data=countries_gpd,
columns=['ADMIN', 'VALORE'],
key_on='feature.properties.ADMIN',
fill_color='Spectral',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='Permessi di soggiorno'
).add_to(geoprova)
g.geojson.add_child(tooltip)
g.geojson.add_child(popup)
folium.TileLayer('stamentoner').add_to(geoprova)
Visualizziamo la mappa.
geoprova
Per entrare nel merito visualizziamo graficamente la distribuzione secondo il motivo. Il grafico scelto è un bar chart in posizione orizzontale in primo luogo perché la variabile 'motivo' è categoriale, in secondo luogo grazie ad esso è possibile osservare facilmente le differenze tra le diverse modalità.
fig, ax = plt.subplots(figsize=(15,7))
sns.set_style(style="darkgrid")
sns.color_palette("husl", 9)
sns.barplot(data=permesso_sogg, x='valore', y='motivo_permesso', orient='h', ax=ax)
In questa analisi non spiccano le motivazioni di carattere economico, quindi migrazioni per il lavoro. Me ne occupo nel prossimo punto.
CHE PERCENTUALE C'E' DI OCCUPAZIONE? E DI DISOCCUPAZIONE? IN CHE COSA SONO GENERALMENTE OCCUPATI?
1) OCCUPAZIONE: analizziamo i tassi di occupazione del 2019 (sono quelli proposti) della popolazione straniera in Italia con suddivsione nel territorio e secondo il titolo di studio.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
occupati = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/tasso_occup.csv", usecols=['Sesso', 'Territorio', 'Cittadinanza', 'Titolo di studio', 'Seleziona periodo', 'Value'])
occupati.isnull().any() #non ci sono valori nulli
Rinominiamo le variabili per comodità.
occupati = occupati.rename(columns= {'Titolo di studio' : 'titolo_di_studio', 'Seleziona periodo' : 'periodo', 'Value' : 'valore'})
occupati.head()
Estrapoliamo dalla tabella solo i dati complessivi del 2019, attraverso l'indicizzazione secondo il periodo e una maschera.
occupati.set_index('periodo')
occupati_2019 = occupati.loc[(occupati['periodo']=='2019') & (occupati['Sesso']=='totale')]
occupati_2019.head()
Raggruppando secondo il titolo di studio vediamo la percentuale media di occupazione degli stranieri in Italia.
occupati1 = occupati.groupby('titolo_di_studio')
occupati1.mean()
Sorge spontaneo però domandarsi quanti stranieri abbiano la possibilità di proseguire gli studi, sia in termini economici che di tempo. Analizziamo il numero di soggetti stranieri iscritti all'università.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
universita = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/stranieri_uni.csv", usecols=['AnnoA', 'AteneoNOME', 'CorsoTIPO', 'Continente', 'CittadinanzaNOME', 'Isc_S'])
universita.isnull().any() #non ci sono valori nulli
Organizzo il dataframe con nomi di colonne più conformi e semplici.
universita = universita.rename(columns= {'AnnoA' : 'anno', 'AteneoNOME' : 'ateneo', 'CorsoTIPO' : 'tipo_corso', 'CittadinanzaNOME' : 'cittadinanza', 'Isc_S': 'valore'})
universita.head()
Raggruppo la tabella secondo il tipo di corso e visualizzo il risultato.
universita1 = universita.groupby('tipo_corso')
universita1.sum()
2) DISOCCUPAZIONE: visioniamo i tassi di disocupazione analogamente al punto precedente.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
disoccupati = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/tasso_disoccup.csv", usecols=['Sesso', 'Titolo di studio', 'Cittadinanza', 'Seleziona periodo', 'Value'])
disoccupati.isnull().any() #non ci sono valori nulli
Proseguiamo con l'analisi dei tassi e per prima cosa modifichiamo il nome delle variabili.
disoccupati = disoccupati.rename(columns= {'Titolo di studio' : 'titolo_di_studio', 'Seleziona periodo' : 'periodo', 'Value' : 'valore'})
disoccupati.head()
Raggruppiamo i dati per il titolo di studio e visualizziamo la percentuale media di disoccupati.
disoccupati1= disoccupati.groupby('titolo_di_studio')
disoccupati1.mean()
Non ci siamo però occupati della tipologia di attività che quest'ultimi svolgono, molto utili ai fini dell'analisi.
3) TIPOLOGIA DI ATTIVITA' SVOLTA: analizziamo che attività svolgono gli stranieri in Italia.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
tipo_occup = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/occupaz_str.csv", usecols=['Territorio', 'Sesso', 'Professione 2011', 'Seleziona periodo', 'Value'])
tipo_occup.isnull().any() #non ci sono valori nulli
Rinominiamo per semplicità le variabili.
tipo_occup = tipo_occup.rename(columns={'Professione 2011' : 'Professione', 'Seleziona periodo': 'periodo', 'Value' : 'valore'})
tipo_occup.head()
Sarebbe interessante andare a vedere come le diverse professioni si distribuiscono sul territorio italiano.
tipo_occup1 = tipo_occup.pivot_table(values='valore', index='Territorio', columns='Professione')
tipo_occup1
Suddividiamo i soggetti occupati per le diverse categorie di professione che svolgono.
tipo_occup2 = pd.DataFrame(tipo_occup, columns={'Professione', 'valore'})
tipo_occup3 = tipo_occup2.groupby('Professione').sum().drop('totale')
tipo_occup3
Voglio visualizzare il risultato con un grafico a torta, semplice ed intuitivo da interpretare. Per prima cosa costruisco le percentuali dei soggetti suddivisi per le professioni (divido per il totale e poi moltiplico per 100).
percentuale = (tipo_occup3['valore']/42299.929)*100
percentuale
grafico = percentuale.plot.pie(y='valore', figsize=(15, 7), autopct='%1.1f%%', shadow=True, fontsize=14)
Il fenomeno sociale porta quindi a delle conseguenze, sia positive che negative. Analizziamole.
La DELINQUENZA può essere considerata come uno dei principali aspetti negativi; questo avviene per il pensiero comune secondo cui gli stranieri, non trovando lavoro, sono costretti a delinquere per sopravvivere. (Ma non è così). Prendo in considerazione gli stranieri che hanno commesso delitti e/o delinquenze sul territorio italiano.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
delinquenza = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/delinquenza.csv", usecols=['TIPO_DATO35', 'Tipo di delitto', 'Cittadinanza', 'Seleziona periodo', 'Value'])
delinquenza.isnull().any() #non ci sono valori nulli
Rinomino per semplicità le colonne e seleziono le righe contenenti i dati delle persone che hanno commesso violenze, delitti o delinquenze.
delinquenza = delinquenza.rename(columns={'TIPO_DATO35' : 'posizione_sogg', 'Tipo di delitto': 'tipo_delitto', 'Seleziona periodo' : 'periodo', 'Value' : 'valore'})
delinquenza = delinquenza.loc[delinquenza['posizione_sogg'] == 'OFFEND']
delinquenza.head()
Che tipologie di azioni commettono?
delinquenza1 = delinquenza.pivot_table(values='valore', index='posizione_sogg', columns='tipo_delitto')
delinquenza1
Sono in numero significativo?
delinquenza['valore'].count()
Sul totale dei residenti 2018, in che percentuale sono?
(delinquenza['valore'].count()/residenti_2018['valore'])*100
L'ALTA FECONDITA' è uno dei possibili e condivisi aspetti positivi che l'immigrazione in Italia consente. Analizziamo i tassi totali di fecondità delle donne straniere.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
fecondita = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/fecondita.csv", usecols=['Territorio', 'Tipo dato', 'Cittadinanza', 'Seleziona periodo', 'Value'])
fecondita.isnull().any() #non ci sono valori nulli
Rinominiamo le variabili e selezioniamo il tasso di fecondita totale, escludendo casistiche più specifiche per comodità e maggiore chiarezza.
fecondita = fecondita.rename(columns={'Tipo dato' : 'tipo_dato', 'Seleziona periodo' : 'periodo', 'Value' : 'valore'})
fecondita = fecondita.loc[fecondita['tipo_dato']== 'tasso di fecondità totale']
fecondita
Visualizziamo in modo più chiaro qual è il tasso di fecondità delle donne straniere (in media).
fecondita.pivot_table(values='valore', index='tipo_dato', columns='Cittadinanza')
1) Si parla spesso di DISCRIMINAZIONI dei quali i soggetti oggetto di questa analisi sono spesso succubi. Analizziamo le tipologie di discriminazioni subite e in che contesto avvengono.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
discriminazioni = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/discriminazioni.csv", usecols=['Cittadinanza', 'Discriminazione', 'Value'])
discriminazioni.isnull().any() #non ci sono valori nulli
Rinominanimo le variabili.
discriminazioni = discriminazioni.rename(columns={'Value' : 'valore'})
discriminazioni.head()
Raggruppiamo secondo il Paese di cittadinanza e facciamo la somma dei valori. Quanti stranieri hanno subito discriminazioni?
discriminazioni1 = discriminazioni.groupby('Cittadinanza')
discriminazioni1.sum()
Appare evidente dalla tabella precedente l'ingente numero di persone vittime di discriminazioni. Ma in che contesti avvengono?
discriminazioni2 = discriminazioni.groupby('Discriminazione')
discriminazioni2.sum()
Vediamo le tipologie di discriminazioni dove sono state incontrate graficamente tramite un pointplot. Il grafico è utile per denotare gli ambiti nei quali le discriminazioni sono più frequenti.
fig, ax = plt.subplots(figsize=(15,7))
sns.pointplot(data=discriminazioni, x='valore', y='Discriminazione', ax=ax)
2) Molte persone venute in ricerca di felicità e stabilità si trovano però in condizioni di POVERTA'. Analizziamo il dataframe relativo alle famiglie in condizioni di povertà assoluta. Per povertà assoluta intendiamo quelle famiglie che stentano a sopravvivere ed a mantenere uno standard di vita minimamente accettabile.
TRATTAMENTO DEI VALORI NULLI: CI SONO? COME LI GESTISCO?
poverta = pd.read_csv(r"C:/Users/Utente/Desktop/DATI_PROGETTO/stranieri/poverta.csv", usecols=['Territorio', 'TIPO_DATO8', 'Seleziona periodo', 'Value'])
poverta.isnull().any() #non ci sono valori nulli
Rinominiamo le variabili e selezioniamo le righe contenenti il dato di famiglie in povertà assoluta.
poverta = poverta.rename(columns={'TIPO_DATO8' : 'tipo_dato', 'Seleziona periodo' : 'periodo', 'Value' : 'valore'})
poverta = poverta.loc[poverta['tipo_dato']== 'FAM_POVASS']
poverta
Mediamente qual è il tasso di povertà assoluta familiare?
np.mean(poverta['valore'])
REPORT¶
In questa sezione effetuerò un report, un ricapitolo sintetico e significativo, a proposito dell'analisi appena eseguita.
L'aumento dal 2017 al 2019 è pari a:
(5306548-5144440)/5144440
In sostanza, l'aumento in percentuale di migranti nel nostro Paese dal 2017 al 2019 è pari al 3.15 %. Questo aumento non decisamente significativo è dovuto alle misure che erano state prese in quegli anni per fronteggiare questo problema, ossia una limitazione degli sbarchi e l'eliminazione di determinati permessi di soggiorno.
geoprova
Analizzando graficamente con il bar chart questi risultati vengono messi in luce.
fig, ax = plt.subplots(figsize=(15,7))
sns.set_style(style="darkgrid")
sns.color_palette("husl", 9)
sns.barplot(data=permesso_sogg, x='valore', y='motivo_permesso', orient='h', ax=ax)
occupati1 = occupati.groupby('titolo_di_studio')
occupati1.mean()
Questo risultato mette in luce come le popolazioni che migrano in Italia lavorano, sono circa 6 persone su 10. In questi dati, come nella maggior parte di essi in generale, non si tiene conto dei lavori part-time e ovviamente dell'economia sommersa (es. lavoro in nero): si parla di FTE, ossia FULL-TIME-EQUIVALENCY. In generale, quindi, si può dire che i migranti siano parte della forza lavoro attiva del Paese.
universita1 = universita.groupby('tipo_corso')
universita1.sum()
Il problema sta nel c.d. effetto selezione, ossia l'esistenza di una barriera iniziale di accesso che non consente a coloro che hanno problemi economici di iscriversi all'università e di conseguenza coloro che superano l'ostacolo iniziale hanno un buon risultato occupazionale. Molte sono le migliorie effettuate dalle università italiane in questo senso, come l'abbassamento delle tasse e, più in generale, mezzi di trasporto più coordinati e accessibili; tuttavia non risultano sufficienti.
disoccupati1= disoccupati.groupby('titolo_di_studio')
disoccupati1.mean()
La disoccupazione è bassa, solo uno straniero su 10 non svolge alcuna attività lavorativa. Anche in questi dati va considerato l'ingente numero di persone occupate nell'economia sommersa e nel lavoro part-time (vedi tassi di occupazione).
grafico = percentuale.plot.pie(y='valore', figsize=(15, 7), autopct='%1.1f%%', shadow=True, fontsize=14)
(delinquenza['valore'].count()/residenti_2018['valore'])*100
La percentuale risultante è pari allo 0.017%, un valore molto basso, significa che meno di una persona su dieci ha commesso delinquenze (quasi zero).
fecondita.pivot_table(values='valore', index='tipo_dato', columns='Cittadinanza')
Risulta un tasso pari a 1.92 figli per donna, il dato italiano invece è di 1.2 figli per donna (quasi la metà). La differenza di media risiede nelle diversità culturali e lavorative delle donne: da un lato le donne italiane, più o meno attive nel mondo del lavoro, raggiungono l'indipendenza economica molto tardi e non hanno, per fortuna, più alcun dovere morale nel dover necessariamente procreare; dall'altro lato le donne straniere (ma si dovrebbe analizzare Paese per Paese) hanno con più frequenza figli, nonostante condizioni economiche poco favorevoli. Questo è un dato positivo per il nostro Paese perché potrebbe migliorare i nostri dati demografici.
fig, ax = plt.subplots(figsize=(15,7))
sns.pointplot(data=discriminazioni, x='valore', y='Discriminazione', ax=ax)
Inoltre, i dati ISTAT mettono in luce come le famiglie con componenti di origine straniera siano spesso in condizioni di povertà assoluta. Si intendono famiglie che a malapena riescono a soddisfare i propri bisogni primari. In seguito il dato medio:
np.mean(poverta['valore'])
Il 35.7% delle famiglie staniere si trovano in condizioni di povertà assoluta. Il dato non è eccessivo e nonostante l'alto il tasso di occupazione, i soggetti posseggono spesso basse qualifiche corrispondenti a professioni perlopiù manuali, quindi salari conseguentemente bassi. Ciò non giustifica in alcun modo questo dato, gli individui più fragili dovrebbero ricevere un sostegno significativo da parte dello Stato.
Come ho spiegato inizialmente l'obbiettivo della analisi è evidenziare la presenza della migrazione nel nostro Paese mettendo in luce i numeri, i motivi e le conseguenze che possono derivarne.
Ogni anno si contano più o meno di 5 milioni di migranti provenienti da tutto il mondo, un trend in aumento ma perlopiù stabile tra un anno e l'altro. I motivi per i quali questi soggetti migrano sono di tipo familiare, lavorativo o per richiedere asilo e protezione umanitaria. I migranti sono parte integrante della forza lavoro italiana: parliamo di più del 60% occupato, non contando l'ingente numero di persone impiegate nell'economia sommersa. Pochi invece sono i disoccupati, pari al 10-15% del totale. Essi svolgono, proprio come è comunemente condiviso, quei lavori che gli italiani spesso non sarebbero disposti a svolgere; è un meccanismo che non ha a che fare con nessuna "classificazione" lavorativa, piuttosto ha a che vedere con la teoria della relative risk adversion, secondo cui un soggetto che ha investito in istruzione si aspetta un ritorno di quest'ultimo in termini lavorativi. Sono occupati quindi in lavori non qualificati, fanno parte della classe operaia o dell'artigianato e molto poco spesso in attività prestigiose e qualificate. Come tutte le cose, anche la migrazione porta con sé pro e contro: tra i contro troviamo la delinquenza, che secondo alcuni potrebbero esercitare, ma che molti dati smentiscono (o perlomeno non sono così rilevanti statisticamente); tra i pro troviamo l'alta fecondità, pari a quasi 2 figli per donna, che contrasterebbe l'invecchiamento della popolazione italiana. Riguardo la loro inclusione nel Paese che li ospita, molte sono le perplessità in questo campo. Sono spesso vittime di discriminazioni nel mondo del lavoro e non solo, anche a scuola e nei luoghi pubblici. Inoltre, una parte di loro si trova in gravi condizioni economiche.